home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / mfintro.lha / sineint4.s < prev   
Text File  |  1988-12-06  |  48KB  |  2,166 lines

  1.     section crap,code_c        ; Use Chip Memory
  2.     opt    c-,o+            ; No Case Sensitivity, Optimize on
  3.  
  4.     move.l    4.w,a6            ; Get Execbase
  5.     jsr    -132(a6)        ; Turn off Muli-tasking (Forbid)
  6.     lea    gfxlib,a1        
  7.     moveq    #0,d0
  8.     move.l    4.w,a6
  9.     jsr    -$228(a6)        ; Open graphics library
  10.     tst    d0
  11.     beq    error
  12.     move.l    d0,gfxbse
  13.     move.l    #screen,d0        ; Store Screen address in Copper list
  14.     move.w    d0,pl0l
  15.     swap    d0
  16.     move.w    d0,pl0h
  17.     move.l    #screen3,d0
  18.     move.w    d0,pl1l
  19.     swap    d0
  20.     move.w    d0,pl1h
  21.     move.l    #screen5,d0
  22.     move.w    d0,pl2l
  23.     swap    d0
  24.     move.w    d0,pl2h
  25.     move.l    #sprite0,d0
  26.     move.w    d0,sp0l
  27.     swap    d0
  28.     move.w    d0,sp0h
  29.     move.l    gfxbse,a6        ; Set up copper list
  30.     add.l    #$32,a6
  31.     move.w    #$87ff,$dff096
  32.     move.l    (a6),oldcpr        ; Store workbench copper list
  33.     move.l    #newcpr,(a6)        ; Use our copper list
  34.     move.w    #$0020,$dff096
  35.     move.w    #$8010,$dff09a        ; Enable level 3 interrupt
  36.     move.l    $6c.w,old        ; Store old level 3 interrupt
  37.     move.l    #new,$6c.w        ; Use our interrupt
  38.     bset    #1,$bfe001
  39.     move.w    #0,$dff042
  40.     jsr    init_music
  41.  
  42.     move.l    #logo,$dff050
  43.     move.l    #screen3+40,$dff054
  44.     move.l    #$ffffffff,$dff044
  45.     move.w    #0,$dff066
  46.     move.w    #0,$dff064
  47.     move.w    #$09f0,$dff040
  48.     move.w    #%111001010100,$dff058
  49.  
  50.     move.l    #logo+(40*58),$dff050
  51.     move.l    #screen5+40,$dff054
  52.     move.l    #$ffffffff,$dff044
  53.     move.w    #0,$dff066
  54.     move.w    #0,$dff064
  55.     move.w    #$09f0,$dff040
  56.     move.w    #%111000010100,$dff058
  57.  
  58. wait:    btst    #6,$bfe001        ; Test for left mouse button
  59.     bne.s    wait            ; Wait if not pressed
  60.     jsr    end_music
  61.     bclr    #1,$bfe001
  62.     move.l    old,$6c.w        ; Else return to workbench
  63.     move.l    #$10,$dff09a        ; Disable copper interrupt
  64.     move.l    gfxbse,a6        ; Copper list
  65.     add.l    #$32,a6
  66.     move.w    #$8020,$dff096
  67.     move.l    oldcpr,(a6)
  68. ;    move.w    #$8080,$dff096
  69.     move.l    gfxbse,a1        ; Close graphics library
  70.     move.l    $4.w,a6
  71.     jsr    -$19e(a6)
  72.     move.l    $4.w,a6            ; Execbase
  73.     jsr    -138(a6)        ; Permit - Restart multi-tasking
  74. error:    moveq    #0,d0            ; Exit routine
  75.     rts
  76.  
  77. pause:    dc.w    0
  78. text1:    dc.b    "         OH NOOOOOOO!!!!!    @             YEP, YOU GUESSED IT!!!!!               "
  79.     DC.B    "   MAGNETIC FIELDS     @  "
  80.     DC.B    "ONCE A-FUCKING-GAIN HIT YOUR TOTALLY KNACKERED SCREENS WITH.....             "
  81.     DC.B    "   WELL ",39,"ARD WARES    @  "
  82.     dc.b    "                 "
  83.     DC.B    "THE"
  84.     DC.B    " CREDITS FOR THIS SINE INTRO (SINE INTRO V4)"
  85.     DC.B    " GO TO.....                "
  86.     DC.B    "       SPOOK - CODING     @"
  87.     DC.B    "      MAYHEM - CHARSET    @"
  88.     DC.B    "         NO.5 - LOGO      @"
  89.     DC.B    "      DEXTROUS - MUSIC    @ "
  90.     DCb.B    60,"-"
  91.     dc.b    "                 MEMBERS OF MAGNETIC FIELDS ARE (A-Z).....                "
  92.     DC.B    "< ANZ <         @      "
  93.     DC.B    "< BACCHUS <       @      "
  94.      DC.B    "< COSY <        @      "
  95.     DC.B    "< DEXTROUS <      @      "
  96.     DC.B    "< HIT <         @      "
  97.     DC.B    "< FRAP <        @      "
  98.     DC.B    "< FRENZY <       @      "
  99.     DC.B    "< NO.5 <        @      "
  100.     DC.B    "< OPAL <        @      "
  101.     DC.B    "< SISTERARV <      @      "
  102.     DC.B    "< SLAT <        @      "
  103.     DC.B    "< SPIKE <        @      "
  104.     DC.B    "< SPOOK <        @      "
  105.     DC.B    "< Z80 <         @      "
  106.     DC.B    "                                "
  107.     DC.B    "HERE ARE THE GREETS (TO KEEP EVERYONE HAPPY!).......                        "
  108.     INCLUDE    "GREETS.TXT"
  109.     dc.b    "                      "
  110.     dc.b    "A FEW SPECIAL GREETS TO ALL MY (SPOOK) CONTACTS"
  111.     DC.B    "......    WADZ/ACIDFORCE (SOZ 4 DELAY!!!) - "
  112.     DC.B    "ENIGMA/SLIPSTREAM (SOZ 4 DELAY!!! (DO I GET A SPECIAL GREET NOW?))"
  113.     DC.B    " - SHADOW/UNTOUCHABLES (ERMMM... I",39,"LL SEND SOON - HONEST!!!) - "
  114.     DC.B    "TURBO SLUG/THR (DON",39,"T LAUGH AT MY CODE!!! - SEND YOURS SOON!!!) - "
  115.     DC.B    "THAT",39,"S IT!!!            "
  116.     DC.B    "NOW FUCK OFF AND KILL A B.T. EMPLOYEE!!!!!!       "
  117.     DC.B    "SEE YA NEXT DEMO/INTRO/COCK-UP!!    SPOOK!     "
  118.     DC.B    "                        ",0
  119.  
  120.     even
  121.  
  122. new:    movem.l    d0-d7/a0-a6,-(sp)    ; Save all registers
  123.     and.w    #$10,$dff01e        ; Check if it is copper interrupt
  124.     beq    out            ; If not, skip this code
  125.     move.w    #$10,$dff09c
  126.  
  127. ;    **********************************************************
  128. ;    ***          This is where the code goes!!!!           ***
  129. ;    **********************************************************
  130.  
  131.     movem.l    d0-d7/a0-a6,-(sp)
  132.     jsr    play_music
  133.     movem.l    (sp)+,d0-d7/a0-a6
  134.  
  135.     jsr    switchscreen
  136.  
  137.     move.l    current,d0        ; Store Screen address in Copper list
  138.     move.w    d0,pl0l
  139.     swap    d0
  140.     move.w    d0,pl0h
  141. ;    swap    d0
  142. ;    add.l    #40,d0
  143. ;    move.w    d0,pl1l
  144. ;    swap    d0
  145. ;    move.w    d0,pl1h
  146.  
  147.     move.l    ripos,a0
  148.     lea    water+6,a1
  149.     move.w    #64,d0
  150. riplit:    move.w    (a0),(a1)
  151.     addq.l    #4,a1
  152.     move.w    (a0)+,(a1)
  153.     add.l    #24,a1
  154.     cmp.w    #999,(a0)
  155.     bne.s    loop
  156.     lea    ripple,a0
  157. loop:    dbf    d0,riplit
  158.     move.l    ripos,a0
  159.     addq.l    #2,a0
  160.     move.w    (a0),d0
  161.     cmp.w    #999,d0
  162.     bne.s    pb
  163.     lea    ripple,a0
  164. pb:    move.l    a0,ripos
  165.  
  166.     move.w    pause,d0
  167.     tst.w    d0
  168.     beq.s    goon
  169.     subq.w    #1,d0
  170.     move.w    d0,pause
  171.     move.w    #0,shift
  172.     bra.w    noscroll
  173.  
  174. goon:    move.l    #scroll+2,$dff050
  175.     move.l    #scroll,$dff054
  176.     move.l    #$ffffffff,$dff044
  177.     move.w    #0,$dff066
  178.     move.w    #0,$dff064
  179.     move.w    shift,d0
  180.     tst.w    shift
  181.     bne.s    subit
  182.     move.w    #%1110000000000000,d0
  183.     bra.s    putit
  184. subit:    sub.w    #%0010000000000000,d0
  185. putit:    move.w    d0,shift
  186.     move.w    #$e9f0,$dff040
  187.     move.w    #%01101011000,$dff058
  188.  
  189.     move.l    tpoi1,a0
  190.     move.b    (a0)+,d0
  191.     cmp.b    #"@",d0
  192.     bne.s    test
  193.     move.w    #200,pause
  194.     move.l    a0,tpoi1
  195.     bra.s    noscroll
  196.  
  197. test:    move.w    shift,d0
  198.     tst.w    d0
  199.     bne.s    noscroll
  200.  
  201. noshit:    move.l    tpoi1,a0
  202.     move.l    #0,d0
  203.     move.b    (a0)+,d0
  204.     tst.b    d0
  205.     bne.s    find
  206.     lea    text1,a0
  207.     move.b    (a0),d0
  208. find:    move.l    a0,tpoi1
  209.     sub.b    #$20,d0
  210.     lea    chars,a0
  211. loopy:    cmp.b    #19,d0
  212.     ble.s    smch
  213.     sub.b    #20,d0
  214.     add.l    #40*16,a0
  215.     bra.s    loopy
  216. smch    add.l    d0,a0
  217.     add.l    d0,a0
  218.     move.l    a0,char1
  219.  
  220. noscroll:
  221.     move.l    char1,a0
  222.     move.l    a0,$dff050
  223.     move.l    #scroll,$dff054
  224.     move.l    #$ffffffff,$dff044
  225.     move.w    #46,$dff066
  226.     move.w    #38,$dff064
  227.     move.w    #$09f0,d1
  228.     move.w    shift,d0
  229.     add.w    d1,d0
  230.     move.w    d0,$dff040
  231.     move.w    #%01110000001,$dff058
  232.  
  233. ;    move.w    #12,d0
  234. ;looop:    move.w    (a0),(a1)
  235. ;    add.l    #48,a1
  236. ;    add.l    #40,a0
  237. ;    dbf    d0,looop
  238.  
  239.     moveq.w    #4,d4
  240.     move.w    #19,d3
  241.     move.w    #38,$dff066        ; Dest Modulo
  242.     move.w    #46,$dff064        ; Source Modulo
  243.     move.w    #38,$dff062        ; Source Modulo
  244.  
  245.     move.l    wavemove,a3
  246.     move.l    wavemove2,a4
  247.  
  248. ;    ***** Lob Each pixel to screen at differing heights *****
  249.  
  250. bull:    move.l    dest,a2    ; Destination
  251.     add.l    d4,a2
  252.     sub.l    #40*49,a2
  253.     move.l    a2,storage
  254.  
  255.     move.l    storage,a2
  256.     move.w    (a3)+,d5
  257.     add.w    d5,a2
  258.     cmp.w    #9999,(a3)
  259.     bne.s    jeeez
  260.     lea    sinew,a3
  261. jeeez:    move.w    (a4)+,d5
  262.     add.w    d5,a2
  263.     cmp.w    #9999,(a4)
  264.     bne.s    jeez
  265.     lea    sinew2,a4
  266. jeez:
  267.     move.l    source,a0    ; Source
  268.     add.l    d4,a0
  269.     sub.l    #(48*49)-2,a0
  270.  
  271.     move.l    a0,$dff050
  272.     move.l    a2,$dff054
  273.     move.l    #$80008000,$dff044
  274.     move.w    #%0000100111110000,$dff040
  275.     move.w    #%1101111000001,$dff058
  276.  
  277. ;    ***** Lob Next Pixel to screen!!! *****
  278.  
  279.     add.l    #48*49,a0
  280.     move.l    dest,a2    ; Destination
  281.     add.l    d4,a2
  282.     move.l    a2,storage
  283.  
  284. ;    move.l    storage,a2
  285.     move.w    (a3)+,d5
  286.     add.w    d5,a2
  287.     cmp.w    #9999,(a3)
  288.     bne.s    jeeez2
  289.     lea    sinew,a3
  290. jeeez2:    move.w    (a4)+,d5
  291.     add.w    d5,a2
  292.     cmp.w    #9999,(a4)
  293.     bne.s    jeez2
  294.     lea    sinew2,a4
  295. jeez2:
  296.     move.l    a0,$dff050
  297.     move.l    a2,$dff04c
  298.     move.l    a2,$dff054
  299.     move.l    #$40004000,$dff044
  300.     move.w    #%0000110111111100,$dff040
  301.     move.w    #%01101000001,$dff058
  302.  
  303. ;    ***** Lob Next Pixel to screen!!! *****
  304.  
  305. ;    move.l    dest,a2    ; Destination
  306. ;    add.l    d4,a2
  307.  
  308.     move.l    storage,a2
  309.     move.w    (a3)+,d5
  310.     add.w    d5,a2
  311.     cmp.w    #9999,(a3)
  312.     bne.s    jeeez3
  313.     lea    sinew,a3
  314. jeeez3:    move.w    (a4)+,d5
  315.     add.w    d5,a2
  316.     cmp.w    #9999,(a4)
  317.     bne.s    jeez3
  318.     lea    sinew2,a4
  319. jeez3:
  320.     move.l    a0,$dff050
  321.     move.l    a2,$dff04c
  322.     move.l    a2,$dff054
  323.     move.l    #$20002000,$dff044
  324.     move.w    #%01101000001,$dff058
  325.  
  326. ;    ***** Lob Next Pixel to screen!!! *****
  327.  
  328. ;    move.l    dest,a2    ; Destination
  329. ;    add.l    d4,a2
  330.  
  331.     move.l    storage,a2
  332.     move.w    (a3)+,d5
  333.     add.w    d5,a2
  334.     cmp.w    #9999,(a3)
  335.     bne.s    jeeez4
  336.     lea    sinew,a3
  337. jeeez4:    move.w    (a4)+,d5
  338.     add.w    d5,a2
  339.     cmp.w    #9999,(a4)
  340.     bne.s    jeez4
  341.     lea    sinew2,a4
  342. jeez4:
  343.     move.l    a0,$dff050
  344.     move.l    a2,$dff04c
  345.     move.l    a2,$dff054
  346.     move.l    #$10001000,$dff044
  347.     move.w    #%01101000001,$dff058
  348.  
  349. ;    ***** Lob Next Pixel to screen!!! *****
  350.  
  351. ;    move.l    dest,a2    ; Destination
  352. ;    add.l    d4,a2
  353.  
  354.     move.l    storage,a2
  355.     move.w    (a3)+,d5
  356.     add.w    d5,a2
  357.     cmp.w    #9999,(a3)
  358.     bne.s    jeeez5
  359.     lea    sinew,a3
  360. jeeez5:    move.w    (a4)+,d5
  361.     add.w    d5,a2
  362.     cmp.w    #9999,(a4)
  363.     bne.s    jeez5
  364.     lea    sinew2,a4
  365. jeez5:
  366.     move.l    a0,$dff050
  367.     move.l    a2,$dff04c
  368.     move.l    a2,$dff054
  369.     move.l    #$08000800,$dff044
  370.     move.w    #%01101000001,$dff058
  371.  
  372. ;    ***** Lob Next Pixel to screen!!! *****
  373.  
  374. ;    move.l    dest,a2    ; Destination
  375. ;    add.l    d4,a2
  376.  
  377.     move.l    storage,a2
  378.     move.w    (a3)+,d5
  379.     add.w    d5,a2
  380.     cmp.w    #9999,(a3)
  381.     bne.s    jeeez6
  382.     lea    sinew,a3
  383. jeeez6:    move.w    (a4)+,d5
  384.     add.w    d5,a2
  385.     cmp.w    #9999,(a4)
  386.     bne.s    jeez6
  387.     lea    sinew2,a4
  388. jeez6:
  389.     move.l    a0,$dff050
  390.     move.l    a2,$dff04c
  391.     move.l    a2,$dff054
  392.     move.l    #$04000400,$dff044
  393.     move.w    #%01101000001,$dff058
  394.  
  395. ;    ***** Lob Next Pixel to screen!!! *****
  396.  
  397. ;    move.l    dest,a2    ; Destination
  398. ;    add.l    d4,a2
  399.  
  400.     move.l    storage,a2
  401.     move.w    (a3)+,d5
  402.     add.w    d5,a2
  403.     cmp.w    #9999,(a3)
  404.     bne.s    jeeez7
  405.     lea    sinew,a3
  406. jeeez7:    move.w    (a4)+,d5
  407.     add.w    d5,a2
  408.     cmp.w    #9999,(a4)
  409.     bne.s    jeez7
  410.     lea    sinew2,a4
  411. jeez7:
  412.     move.l    a0,$dff050
  413.     move.l    a2,$dff04c
  414.     move.l    a2,$dff054
  415.     move.l    #$02000200,$dff044
  416.     move.w    #%01101000001,$dff058
  417.  
  418. ;    ***** Lob Next Pixel to screen!!! *****
  419.  
  420. ;    move.l    dest,a2    ; Destination
  421. ;    add.l    d4,a2
  422.  
  423.     move.l    storage,a2
  424.     move.w    (a3)+,d5
  425.     add.w    d5,a2
  426.     cmp.w    #9999,(a3)
  427.     bne.s    jeeez8
  428.     lea    sinew,a3
  429. jeeez8:    move.w    (a4)+,d5
  430.     add.w    d5,a2
  431.     cmp.w    #9999,(a4)
  432.     bne.s    jeez8
  433.     lea    sinew2,a4
  434. jeez8:
  435.     move.l    a0,$dff050
  436.     move.l    a2,$dff04c
  437.     move.l    a2,$dff054
  438.     move.l    #$01000100,$dff044
  439.     move.w    #%01101000001,$dff058
  440.  
  441. ;    ***** Lob Next Pixel to screen!!! *****
  442.  
  443. ;    move.l    dest,a2    ; Destination
  444. ;    add.l    d4,a2
  445.  
  446.     move.l    storage,a2
  447.     move.w    (a3)+,d5
  448.     add.w    d5,a2
  449.     cmp.w    #9999,(a3)
  450.     bne.s    jeeez9
  451.     lea    sinew,a3
  452. jeeez9:    move.w    (a4)+,d5
  453.     add.w    d5,a2
  454.     cmp.w    #9999,(a4)
  455.     bne.s    jeez9
  456.     lea    sinew2,a4
  457. jeez9:
  458.     move.l    a0,$dff050
  459.     move.l    a2,$dff04c
  460.     move.l    a2,$dff054
  461.     move.l    #$00800080,$dff044
  462.     move.w    #%01101000001,$dff058
  463.  
  464. ;    ***** Lob Next Pixel to screen!!! *****
  465.  
  466. ;    move.l    dest,a2    ; Destination
  467. ;    add.l    d4,a2
  468.  
  469.     move.l    storage,a2
  470.     move.w    (a3)+,d5
  471.     add.w    d5,a2
  472.     cmp.w    #9999,(a3)
  473.     bne.s    jeeez10
  474.     lea    sinew,a3
  475. jeeez10:    move.w    (a4)+,d5
  476.     add.w    d5,a2
  477.     cmp.w    #9999,(a4)
  478.     bne.s    jeez10
  479.     lea    sinew2,a4
  480. jeez10:
  481.     move.l    a0,$dff050
  482.     move.l    a2,$dff04c
  483.     move.l    a2,$dff054
  484.     move.l    #$00400040,$dff044
  485.     move.w    #%01101000001,$dff058
  486.  
  487. ;    ***** Lob Next Pixel to screen!!! *****
  488.  
  489. ;    move.l    dest,a2    ; Destination
  490. ;    add.l    d4,a2
  491.  
  492.     move.l    storage,a2
  493.     move.w    (a3)+,d5
  494.     add.w    d5,a2
  495.     cmp.w    #9999,(a3)
  496.     bne.s    jeeez11
  497.     lea    sinew,a3
  498. jeeez11:    move.w    (a4)+,d5
  499.     add.w    d5,a2
  500.     cmp.w    #9999,(a4)
  501.     bne.s    jeez11
  502.     lea    sinew2,a4
  503. jeez11:
  504.     move.l    a0,$dff050
  505.     move.l    a2,$dff04c
  506.     move.l    a2,$dff054
  507.     move.l    #$00200020,$dff044
  508.     move.w    #%01101000001,$dff058
  509.  
  510. ;    ***** Lob Next Pixel to screen!!! *****
  511.  
  512. ;    move.l    dest,a2    ; Destination
  513. ;    add.l    d4,a2
  514.  
  515.     move.l    storage,a2
  516.     move.w    (a3)+,d5
  517.     add.w    d5,a2
  518.     cmp.w    #9999,(a3)
  519.     bne.s    jeeez12
  520.     lea    sinew,a3
  521. jeeez12:    move.w    (a4)+,d5
  522.     add.w    d5,a2
  523.     cmp.w    #9999,(a4)
  524.     bne.s    jeez12
  525.     lea    sinew2,a4
  526. jeez12:
  527.     move.l    a0,$dff050
  528.     move.l    a2,$dff04c
  529.     move.l    a2,$dff054
  530.     move.l    #$00100010,$dff044
  531.     move.w    #%01101000001,$dff058
  532.  
  533. ;    ***** Lob Next Pixel to screen!!! *****
  534.  
  535. ;    move.l    dest,a2    ; Destination
  536. ;    add.l    d4,a2
  537.  
  538.     move.l    storage,a2
  539.     move.w    (a3)+,d5
  540.     add.w    d5,a2
  541.     cmp.w    #9999,(a3)
  542.     bne.s    jeeez13
  543.     lea    sinew,a3
  544. jeeez13:    move.w    (a4)+,d5
  545.     add.w    d5,a2
  546.     cmp.w    #9999,(a4)
  547.     bne.s    jeez13
  548.     lea    sinew2,a4
  549. jeez13:
  550.     move.l    a0,$dff050
  551.     move.l    a2,$dff04c
  552.     move.l    a2,$dff054
  553.     move.l    #$00080008,$dff044
  554.     move.w    #%01101000001,$dff058
  555.  
  556. ;    ***** Lob Next Pixel to screen!!! *****
  557.  
  558. ;    move.l    dest,a2    ; Destination
  559. ;    add.l    d4,a2
  560.  
  561.     move.l    storage,a2
  562.     move.w    (a3)+,d5
  563.     add.w    d5,a2
  564.     cmp.w    #9999,(a3)
  565.     bne.s    jeeez14
  566.     lea    sinew,a3
  567. jeeez14:    move.w    (a4)+,d5
  568.     add.w    d5,a2
  569.     cmp.w    #9999,(a4)
  570.     bne.s    jeez14
  571.     lea    sinew2,a4
  572. jeez14:
  573.     move.l    a0,$dff050
  574.     move.l    a2,$dff04c
  575.     move.l    a2,$dff054
  576.     move.l    #$00040004,$dff044
  577.     move.w    #%01101000001,$dff058
  578.  
  579. ;    ***** Lob Next Pixel to screen!!! *****
  580.  
  581. ;    move.l    dest,a2    ; Destination
  582. ;    add.l    d4,a2
  583.  
  584.     move.l    storage,a2
  585.     move.w    (a3)+,d5
  586.     add.w    d5,a2
  587.     cmp.w    #9999,(a3)
  588.     bne.s    jeeez15
  589.     lea    sinew,a3
  590. jeeez15:    move.w    (a4)+,d5
  591.     add.w    d5,a2
  592.     cmp.w    #9999,(a4)
  593.     bne.s    jeez15
  594.     lea    sinew2,a4
  595. jeez15:
  596.     move.l    a0,$dff050
  597.     move.l    a2,$dff04c
  598.     move.l    a2,$dff054
  599.     move.l    #$00020002,$dff044
  600.     move.w    #%01101000001,$dff058
  601.  
  602. ;    ***** Lob Next Pixel to screen!!! *****
  603.  
  604. ;    move.l    dest,a2    ; Destination
  605. ;    add.l    d4,a2
  606.  
  607.     move.l    storage,a2
  608.     move.w    (a3)+,d5
  609.     add.w    d5,a2
  610.     cmp.w    #9999,(a3)
  611.     bne.s    jeeez16
  612.     lea    sinew,a3
  613. jeeez16:    move.w    (a4)+,d5
  614.     add.w    d5,a2
  615.     cmp.w    #9999,(a4)
  616.     bne.s    jeez16
  617.     lea    sinew2,a4
  618. jeez16:
  619.     move.l    a0,$dff050
  620.     move.l    a2,$dff04c
  621.     move.l    a2,$dff054
  622.     move.l    #$00010001,$dff044
  623.     move.w    #%01101000001,$dff058
  624.  
  625.     addq.w    #2,d4
  626.  
  627.     dbf    d3,bull
  628.  
  629.     move.l    wavemove,a0
  630.     subq.l    #6,a0
  631.     cmp.w    #9999,(a0)
  632.     bne.s    ok
  633.     lea    sinend,a0
  634. ok:    move.l    a0,wavemove
  635.  
  636.     move.l    wavemove2,a0
  637.     addq.l    #2,a0
  638.     cmp.w    #9999,(a0)
  639.     bne.s    ok2
  640.     lea    sinew2,a0
  641. ok2:    move.l    a0,wavemove2
  642.  
  643.     move.b    vs4,d0
  644.     tst.b    d0
  645.     beq.s    nobar1
  646.     move.l    #0,h4
  647.     move.w    #29,i4
  648. nobar1:
  649.     move.b    vs3,d0
  650.     tst.b    d0
  651.     beq.s    nobar2
  652.     move.l    #0,h3
  653.     move.w    #29,i3
  654. nobar2:
  655.     move.b    vs2,d0
  656.     tst.b    d0
  657.     beq.s    nobar3
  658.     move.l    #0,h2
  659.     move.w    #29,i2
  660. nobar3:
  661.     move.b    vs1,d0
  662.     tst.b    d0
  663.     beq.s    nobar4
  664.     move.l    #0,h1
  665.     move.w    #29,i1
  666. nobar4:
  667.     move.l    #screen3+(40*137)-6,a0
  668.     move.l    h4,d0
  669.     add.l    d0,a0
  670.     move.w    i4,d0
  671.     move.w    #$0000,(a0)
  672.     add.l    #80,a0
  673. wanker:    move.w    #$ffff,(a0)
  674.     add.l    #80,a0
  675.     dbf    d0,wanker
  676.  
  677.     move.l    #screen3+(40*137)-16,a0
  678.     move.l    h3,d0
  679.     add.l    d0,a0
  680.     move.w    i3,d0
  681.     move.w    #$0000,(a0)
  682.     add.l    #80,a0
  683. wanker2:move.w    #$ffff,(a0)
  684.     add.l    #80,a0
  685.     dbf    d0,wanker2
  686.  
  687.     move.l    #screen3+(40*137)-26,a0
  688.     move.l    h2,d0
  689.     add.l    d0,a0
  690.     move.w    i2,d0
  691.     move.w    #$0000,(a0)
  692.     add.l    #80,a0
  693. wanker3:move.w    #$ffff,(a0)
  694.     add.l    #80,a0
  695.     dbf    d0,wanker3
  696.  
  697.     move.l    #screen3+(40*137)-36,a0
  698.     move.l    h1,d0
  699.     add.l    d0,a0
  700.     move.w    i1,d0
  701.     move.w    #$0000,(a0)
  702.     add.l    #80,a0
  703. wanker4:move.w    #$ffff,(a0)
  704.     add.l    #80,a0
  705.     dbf    d0,wanker4
  706.  
  707.     move.l    h4,d0
  708.     cmp.l    #29*80,d0
  709.     bge.s    not1
  710.     add.l    #80,d0
  711.     move.l    d0,h4
  712.     move.w    i4,d0
  713.     subq.w    #1,d0
  714.     move.w    d0,i4
  715. not1:
  716.     move.l    h3,d0
  717.     cmp.l    #29*80,d0
  718.     bge.s    not2
  719.     add.l    #80,d0
  720.     move.l    d0,h3
  721.     move.w    i3,d0
  722.     subq.w    #1,d0
  723.     move.w    d0,i3
  724. not2:
  725.     move.l    h2,d0
  726.     cmp.l    #29*80,d0
  727.     bge.s    not3
  728.     add.l    #80,d0
  729.     move.l    d0,h2
  730.     move.w    i2,d0
  731.     subq.w    #1,d0
  732.     move.w    d0,i2
  733. not3:
  734.     move.l    h1,d0
  735.     cmp.l    #29*80,d0
  736.     bge.s    not4
  737.     add.l    #80,d0
  738.     move.l    d0,h1
  739.     move.w    i1,d0
  740.     subq.w    #1,d0
  741.     move.w    d0,i1
  742. not4:
  743.  
  744. out:    movem.l    (sp)+,d0-d7/a0-a6    ; Restore registers
  745.  
  746.     dc.w    $4ef9            ; JSR instruction
  747.  
  748. old:    dc.l    0
  749. oldcpr:    dc.l    0            ; Workbench copper list
  750.  
  751. current    dc.l    screen
  752. storage    dc.l    0
  753. source:    dc.l    scroll
  754. dest:    dc.l    screen+(2*40)-4
  755. dest1:    dc.l    screen+(2*40)-4
  756. dest2:    dc.l    screen2+(2*40)-4
  757. tpoi1:    dc.l    text1
  758.  
  759. char1:    dc.l    chars
  760.  
  761. h1:    dc.l    0
  762. h2:    dc.l    0
  763. h3:    dc.l    0
  764. h4:    dc.l    0
  765. i1:    dc.w    29
  766. i2:    dc.w    29
  767. i3:    dc.w    29
  768. i4:    dc.w    29
  769.  
  770. apoi:    dc.l    0
  771. ;pos1:    dc.l    sine2
  772. ;pos2:    dc.l    sine
  773. posit:    dc.w    0
  774. shift:    dc.w    %1110000000000000
  775. shift2:    dc.w    %1110000000000000
  776. v1dat:    dc.w    0
  777. v2dat:    dc.w    0
  778. v3dat:    dc.w    0
  779. v4dat:    dc.w    0
  780.  
  781. newcpr:    dc.w    $100,%0011001000000000,$102,0,$108,0,$10a,0
  782.     dc.w    $92,$38,$94,$d0,$8e,$2c81,$90,$38c1,$e0
  783. pl0h:    dc.w    0,$e2
  784. pl0l:    dc.w    0,$e4
  785. pl1h:    dc.w    0,$e6
  786. pl1l:    dc.w    0,$e8
  787. pl2h:    dc.w    0,$ea
  788. pl2l:    dc.w    0,$120
  789. SP0H DC.W 0,$122
  790. SP0L DC.W 0
  791.     dc.w    $180,$000
  792.     dc.w    $182,$000
  793.     dc.w    $184,$fff
  794.     dc.w    $186,$fff
  795.     dc.w    $188,$88f
  796.     dc.w    $18a,$88f
  797.     dc.w    $18c,$000
  798.     dc.w    $18e,$000
  799.     dc.w    $9c,$8010        ; Call copper interrupt
  800.  
  801.     dc.w    $0001,$fffe,$180,$fff
  802.     dc.w    $2801,$fffe,$180,$ffe
  803.     dc.w    $3001,$fffe,$180,$ffd
  804.     dc.w    $3801,$fffe,$180,$ffc
  805.     dc.w    $4001,$fffe,$180,$ffb
  806.     dc.w    $4801,$fffe,$180,$ffa
  807.     dc.w    $5001,$fffe,$180,$ff9
  808.     dc.w    $5801,$fffe,$180,$ff8
  809.     dc.w    $6001,$fffe,$180,$ff7
  810.     dc.w    $6801,$fffe,$180,$ff6
  811.     dc.w    $7001,$fffe,$180,$ff5
  812.     dc.w    $7801,$fffe,$180,$ff4
  813.     dc.w    $8001,$fffe,$180,$ff3
  814.     dc.w    $8801,$fffe,$180,$ff2
  815.     dc.w    $9001,$fffe,$180,$ff1
  816.     dc.w    $9801,$fffe,$180,$ff0
  817.     dc.w    $a001,$fffe,$180,$fe2
  818.     dc.w    $a401,$fffe,$180,$fe0
  819.     dc.w    $a801,$fffe,$180,$fd2
  820.     dc.w    $ac01,$fffe,$180,$fd0
  821.     dc.w    $b001,$fffe,$180,$fc2
  822.     dc.w    $b401,$fffe,$180,$fc0
  823.     dc.w    $b801,$fffe,$180,$fb2
  824.     dc.w    $bc01,$fffe,$180,$fb0
  825.     dc.w    $c001,$fffe,$180,$fa2
  826.     dc.w    $c401,$fffe,$180,$fa0
  827.     dc.w    $c801,$fffe,$180,$f92
  828.     dc.w    $cc01,$fffe,$180,$f90
  829.     dc.w    $d001,$fffe,$180,$f82
  830.     dc.w    $d401,$fffe,$180,$f80
  831.     dc.w    $d801,$fffe,$180,$f72
  832.     dc.w    $dc01,$fffe,$180,$f70
  833.     dc.w    $e001,$fffe,$180,$f62
  834.     dc.w    $e401,$fffe,$180,$f60
  835.     dc.w    $e801,$fffe,$180,$f52
  836.     dc.w    $ec01,$fffe,$180,$f50
  837.  
  838.     dc.w    $188,$66c
  839.     dc.w    $18a,$66c
  840.     dc.w    $18c,$22a
  841.     dc.w    $18e,$22a
  842.  
  843. water:    dc.w    $ef01,$fffe,$108,-120,$10a,-120,$180,$0004,$184,$044a,$186,$0226,$182,$0007
  844.     dc.w    $f001,$fffe,$108,-120,$10a,-120,$180,$0014,$184,$044a,$186,$0226,$182,$0007
  845.     dc.w    $f101,$fffe,$108,-120,$10a,-120,$180,$0104,$184,$044a,$186,$0226,$182,$0007
  846.     dc.w    $f201,$fffe,$108,-120,$10a,-120,$180,$0114,$184,$044a,$186,$0226,$182,$0007
  847.     dc.w    $f301,$fffe,$108,-120,$10a,-120,$180,$0005,$184,$044a,$186,$0226,$182,$0008
  848.     dc.w    $f401,$fffe,$108,-120,$10a,-120,$180,$0015,$184,$055b,$186,$0226,$182,$0008
  849.     dc.w    $f501,$fffe,$108,-120,$10a,-120,$180,$0105,$184,$055b,$186,$0226,$182,$0008
  850.     dc.w    $f601,$fffe,$108,-120,$10a,-120,$180,$0115,$184,$055b,$186,$0337,$182,$0008
  851.     dc.w    $f701,$fffe,$108,-120,$10a,-120,$180,$0006,$184,$055b,$186,$0337,$182,$0118
  852.     dc.w    $f801,$fffe,$108,-120,$10a,-120,$180,$0016,$184,$055b,$186,$0337,$182,$0118
  853.     dc.w    $f901,$fffe,$108,-120,$10a,-120,$180,$0106,$184,$066b,$186,$0337,$182,$0118
  854.     dc.w    $fa01,$fffe,$108,-120,$10a,-120,$180,$0116,$184,$066b,$186,$0337,$182,$0118
  855.     dc.w    $fb01,$fffe,$108,-120,$10a,-120,$180,$0007,$184,$066b,$186,$0337,$182,$0119
  856.     dc.w    $fc01,$fffe,$108,-120,$10a,-120,$180,$0017,$184,$066b,$186,$0448,$182,$0119
  857.     dc.w    $fd01,$fffe,$108,-120,$10a,-120,$180,$0107,$184,$066b,$186,$0448,$182,$0119
  858.     dc.w    $fe01,$fffe,$108,-120,$10a,-120,$180,$0117,$184,$077c,$186,$0448,$182,$0119
  859.     dc.w    $ff01,$fffe,$108,-120,$10a,-120,$180,$0008,$184,$077c,$186,$0448,$182,$0229
  860.     dc.w    $ffe1,$fffe,$108,-120,$10a,-120,$180,$0018,$184,$077c,$186,$0448,$182,$0229
  861.     dc.w    $0101,$fffe,$108,-120,$10a,-120,$180,$0108,$184,$077c,$186,$0448,$182,$0229
  862.     dc.w    $0201,$fffe,$108,-120,$10a,-120,$180,$0118,$184,$077c,$186,$0559,$182,$0229
  863.     dc.w    $0301,$fffe,$108,-120,$10a,-120,$180,$0009,$184,$088c,$186,$0559,$182,$022a
  864.     dc.w    $0401,$fffe,$108,-120,$10a,-120,$180,$0019,$184,$088c,$186,$0559,$182,$022a
  865.     dc.w    $0501,$fffe,$108,-120,$10a,-120,$180,$0109,$184,$088c,$186,$0559,$182,$022a
  866.     dc.w    $0601,$fffe,$108,-120,$10a,-120,$180,$0119,$184,$088c,$186,$0559,$182,$022a
  867.     dc.w    $0701,$fffe,$108,-120,$10a,-120,$180,$000a,$184,$088c,$186,$0559,$182,$033a
  868.     dc.w    $0801,$fffe,$108,-120,$10a,-120,$180,$001a,$184,$099d,$186,$066a,$182,$033a
  869.     dc.w    $0901,$fffe,$108,-120,$10a,-120,$180,$010a,$184,$099d,$186,$066a,$182,$033a
  870.     dc.w    $0a01,$fffe,$108,-120,$10a,-120,$180,$011a,$184,$099d,$186,$066a,$182,$033a
  871.     dc.w    $0b01,$fffe,$108,-120,$10a,-120,$180,$000b,$184,$099d,$186,$066a,$182,$033b
  872.     dc.w    $0c01,$fffe,$108,-120,$10a,-120,$180,$001b,$184,$099d,$186,$066a,$182,$033b
  873.     dc.w    $0d01,$fffe,$108,-120,$10a,-120,$180,$010b,$184,$0aad,$186,$066a,$182,$033b
  874.     dc.w    $0e01,$fffe,$108,-120,$10a,-120,$180,$011b,$184,$0aad,$186,$077b,$182,$033b
  875.     dc.w    $0f01,$fffe,$108,-120,$10a,-120,$180,$000c,$184,$0aad,$186,$077b,$182,$044b
  876.     dc.w    $1001,$fffe,$108,-120,$10a,-120,$180,$001c,$184,$0aad,$186,$077b,$182,$044b
  877.     dc.w    $1101,$fffe,$108,-120,$10a,-120,$180,$010c,$184,$0aad,$186,$077b,$182,$044b
  878.     dc.w    $1201,$fffe,$108,-120,$10a,-120,$180,$011c,$184,$0bbe,$186,$077b,$182,$044b
  879.     dc.w    $1301,$fffe,$108,-120,$10a,-120,$180,$000d,$184,$0bbe,$186,$077b,$182,$044c
  880.     dc.w    $1401,$fffe,$108,-120,$10a,-120,$180,$001d,$184,$0bbe,$186,$088c,$182,$044c
  881.     dc.w    $1501,$fffe,$108,-120,$10a,-120,$180,$010d,$184,$0bbe,$186,$088c,$182,$044c
  882.     dc.w    $1601,$fffe,$108,-120,$10a,-120,$180,$011d,$184,$0bbe,$186,$088c,$182,$044c
  883.     dc.w    $1701,$fffe,$108,-120,$10a,-120,$180,$000e,$184,$0cce,$186,$088c,$182,$055c
  884.     dc.w    $1801,$fffe,$108,-120,$10a,-120,$180,$001e,$184,$0cce,$186,$088c,$182,$055c
  885.     dc.w    $1901,$fffe,$108,-120,$10a,-120,$180,$010e,$184,$0cce,$186,$088c,$182,$055c
  886.     dc.w    $1a01,$fffe,$108,-120,$10a,-120,$180,$011e,$184,$0cce,$186,$099d,$182,$055c
  887.     dc.w    $1b01,$fffe,$108,-120,$10a,-120,$180,$000f,$184,$0cce,$186,$099d,$182,$055d
  888.     dc.w    $1c01,$fffe,$108,-120,$10a,-120,$180,$001f,$184,$0ddf,$186,$099d,$182,$055d
  889.     dc.w    $1d01,$fffe,$108,-120,$10a,-120,$180,$010f,$184,$0ddf,$186,$099d,$182,$055d
  890.     dc.w    $1e01,$fffe,$108,-120,$10a,-120,$180,$011f,$184,$0ddf,$186,$099d,$182,$055d
  891.     dc.w    $1f01,$fffe,$108,-120,$10a,-120,$180,$021f,$184,$0ddf,$186,$099d,$182,$066d
  892.     dc.w    $2001,$fffe,$108,-120,$10a,-120,$180,$021f,$184,$0ddf,$186,$0aae,$182,$066d
  893.     dc.w    $2101,$fffe,$108,-120,$10a,-120,$180,$022f,$184,$0eef,$186,$0aae,$182,$066d
  894.     dc.w    $2201,$fffe,$108,-120,$10a,-120,$180,$022f,$184,$0eef,$186,$0aae,$182,$066d
  895.     dc.w    $2301,$fffe,$108,-120,$10a,-120,$180,$032f,$184,$0eef,$186,$0aae,$182,$066e
  896.     dc.w    $2401,$fffe,$108,-120,$10a,-120,$180,$032f,$184,$0eef,$186,$0aae,$182,$066e
  897.     dc.w    $2501,$fffe,$108,-120,$10a,-120,$180,$033f,$184,$0eef,$186,$0aae,$182,$066e
  898.     dc.w    $2601,$fffe,$108,-120,$10a,-120,$180,$033f,$184,$0fff,$186,$0bbf,$182,$066e
  899.     dc.w    $2701,$fffe,$108,-120,$10a,-120,$180,$043f,$184,$0fff,$186,$0bbf,$182,$077e
  900.     dc.w    $2801,$fffe,$108,-120,$10a,-120,$180,$043f,$184,$0fff,$186,$0bbf,$182,$077e
  901.     dc.w    $2901,$fffe,$108,-120,$10a,-120,$180,$044f,$184,$0fff,$186,$0bbf,$182,$077e
  902.     dc.w    $2a01,$fffe,$108,-120,$10a,-120,$180,$044f,$184,$0fff,$186,$0bbf,$182,$077e
  903.     dc.w    $2b01,$fffe,$108,-120,$10a,-120,$180,$054f,$184,$0fff,$186,$0bbf,$182,$077f
  904.     dc.w    $2c01,$fffe,$108,-120,$10a,-120,$180,$054f,$184,$0fff,$186,$0ccf,$182,$077f
  905.     dc.w    $2d01,$fffe,$108,-120,$10a,-120,$180,$055f,$184,$0fff,$186,$0ccf,$182,$077f
  906.     dc.w    $2e01,$fffe,$108,-120,$10a,-120,$180,$055f,$184,$0fff,$186,$0ccf,$182,$077f
  907.     dc.w    $2f01,$fffe,$108,-120,$10a,-120,$180,$065f,$184,$0fff,$186,$0ccf,$182,$088f
  908.     dc.w    $ffff,$fffe        ; End copper
  909.  
  910. gfxlib:    dc.b    "graphics.library",0
  911.     even
  912. gfxbse:    dc.l    0
  913.  
  914.         dcb.b    100*40,0
  915. screen:        dcb.b    40*310,0
  916. screen2:    dcb.b    40*310,0
  917. screen3:    dcb.b    40*240,0
  918. screen4:    dcb.b    40*80,0
  919. screen5:    dcb.b    40*240,0
  920.  
  921. ripple:    dc.w    -080,-080,-080,-080,-080,-080,-080,-080,-080,-080
  922.     dc.w    -120,-080,-080,-080,-080,-080,-120,-080,-080,-080
  923.     dc.w    -080,-120,-080,-080,-080,-120,-080,-080,-120,-080
  924.     dc.w    -120,-120,-080,-120,-120,-120,-080,-120,-120,-120
  925.     dc.w    -120,-080,-120,-120,-120,-120,-120,-080,-120,-120
  926.     dc.w    -120,-120,-120,-120,-120,-120,-120,-120,-160,-120
  927.     dc.w    -120,-120,-120,-120,-160,-120,-120,-120,-120,-160
  928.     dc.w    -120,-120,-120,-160,-120,-120,-160,-120,-160,-160
  929.     dc.w    -120,-160,-160,-160,-120,-160,-160,-160,-160,-120
  930.     dc.w    -160,-160,-160,-160,-160,-120,-160,-160,-160,-160
  931.     dc.w    -160,-160,-160,-160,-160,-160,-120,-160,-160,-160
  932.     dc.w    -160,-160,-120,-160,-160,-160,-160,-120,-160,-160
  933.     dc.w    -160,-120,-160,-160,-120,-160,-120,-120,-160,-120
  934.     dc.w    -120,-120,-160,-120,-120,-120,-120,-160,-120,-120
  935.     dc.w    -120,-120,-120,-160,-120,-120,-120,-120,-120,-120
  936.     dc.w    -120,-120,-120,-120,-080,-120,-120,-120,-120,-120
  937.     dc.w    -080,-120,-120,-120,-120,-080,-120,-120,-120,-080
  938.     dc.w    -120,-120,-080,-120,-080,-080,-120,-080,-080,-080
  939.     dc.w    -120,-080,-080,-080,-080,-120,-080,-080,-080,-080
  940.     dc.w    -080,-120,999
  941.  
  942. ripos:    dc.l    ripple
  943.  
  944. chars:    incbin    "charset"
  945.     dcb.w    52*100,0
  946. scroll:    dcb.w    52*150,0
  947.  
  948. dir:    dc.w    0
  949.  
  950. switchscreen:
  951.     move.l    current,a0
  952.     cmp.l    #screen,a0
  953.     bne.s    sc2
  954.     move.l    #screen2,a0
  955.     move.l    a0,current
  956.     move.l    dest2,a0
  957.     move.l    a0,dest
  958.     rts
  959.  
  960. sc2:    move.l    #screen,a0
  961.     move.l    a0,current
  962.     move.l    dest1,a0
  963.     move.l    a0,dest
  964.     rts
  965.  
  966. wavepos:
  967.     dc.l    sinew
  968. wavemove:
  969.     dc.l    sinew
  970. wavepos2:
  971.     dc.l    sinew2
  972. wavemove2:
  973.     dc.l    sinew2
  974.  
  975. sprite0:
  976.     dc.w    0,0,0,0,0,0
  977.  
  978.     dc.w    9999,9999,9999,9999,9999
  979. sinew:
  980. m=40
  981.   DC.W   0
  982.   DC.W   0
  983.   DC.W   0
  984.   DC.W   0
  985.   DC.W   0
  986.   DC.W   0
  987.   DC.W   0
  988.   DC.W   0
  989.   DC.W   0
  990.   DC.W   0
  991.   DC.W   1*m
  992.   DC.W   1*m
  993.   DC.W   1*m
  994.   DC.W   1*m
  995.   DC.W   2*m
  996.   DC.W   2*m
  997.   DC.W   2*m
  998.   DC.W   3*m
  999.   DC.W   3*m
  1000.   DC.W   4*m
  1001.   DC.W   4*m
  1002.   DC.W   5*m
  1003.   DC.W   6*m
  1004.   DC.W   6*m
  1005.   DC.W   7*m
  1006.   DC.W   8*m
  1007.   DC.W   8*m
  1008.   DC.W   9*m
  1009.   DC.W   10*m
  1010.   DC.W   11*m
  1011.   DC.W   12*m
  1012.   DC.W   13*m
  1013.   DC.W   14*m
  1014.   DC.W   15*m
  1015.   DC.W   16*m
  1016.   DC.W   17*m
  1017.   DC.W   18*m
  1018.   DC.W   19*m
  1019.   DC.W   20*m
  1020.   DC.W   21*m
  1021.   DC.W   22*m
  1022.   DC.W   23*m
  1023.   DC.W   24*m
  1024.   DC.W   26*m
  1025.   DC.W   27*m
  1026.   DC.W   28*m
  1027.   DC.W   30*m
  1028.   DC.W   31*m
  1029.   DC.W   32*m
  1030.   DC.W   33*m
  1031.   DC.W   35*m
  1032.   DC.W   36*m
  1033.   DC.W   38*m
  1034.   DC.W   39*m
  1035.   DC.W   40*m
  1036.   DC.W   42*m
  1037.   DC.W   43*m
  1038.   DC.W   45*m
  1039.   DC.W   46*m
  1040.   DC.W   48*m
  1041.   DC.W   49*m
  1042.   DC.W   51*m
  1043.   DC.W   52*m
  1044.   DC.W   54*m
  1045.   DC.W   55*m
  1046.   DC.W   57*m
  1047.   DC.W   58*m
  1048.   DC.W   60*m
  1049.   DC.W   61*m
  1050.   DC.W   63*m
  1051.   DC.W   64*m
  1052.   DC.W   66*m
  1053.   DC.W   67*m
  1054.   DC.W   68*m
  1055.   DC.W   70*m
  1056.   DC.W   71*m
  1057.   DC.W   73*m
  1058.   DC.W   74*m
  1059.   DC.W   76*m
  1060.   DC.W   77*m
  1061.   DC.W   79*m
  1062.   DC.W   80*m
  1063.   DC.W   82*m
  1064.   DC.W   83*m
  1065.   DC.W   84*m
  1066.   DC.W   86*m
  1067.   DC.W   87*m
  1068.   DC.W   88*m
  1069.   DC.W   90*m
  1070.   DC.W   91*m
  1071.   DC.W   92*m
  1072.   DC.W   93*m
  1073.   DC.W   95*m
  1074.   DC.W   96*m
  1075.   DC.W   97*m
  1076.   DC.W   98*m
  1077.   DC.W   99*m
  1078.   DC.W   101*m
  1079.   DC.W   102*m
  1080.   DC.W   103*m
  1081.   DC.W   104*m
  1082.   DC.W   105*m
  1083.   DC.W   106*m
  1084.   DC.W   107*m
  1085.   DC.W   108*m
  1086.   DC.W   109*m
  1087.   DC.W   109*m
  1088.   DC.W   110*m
  1089.   DC.W   111*m
  1090.   DC.W   112*m
  1091.   DC.W   113*m
  1092.   DC.W   113*m
  1093.   DC.W   114*m
  1094.   DC.W   115*m
  1095.   DC.W   115*m
  1096.   DC.W   116*m
  1097.   DC.W   116*m
  1098.   DC.W   117*m
  1099.   DC.W   117*m
  1100.   DC.W   118*m
  1101.   DC.W   118*m
  1102.   DC.W   119*m
  1103.   DC.W   119*m
  1104.   DC.W   119*m
  1105.   DC.W   119*m
  1106.   DC.W   120*m
  1107.   DC.W   120*m
  1108.   DC.W   120*m
  1109.   DC.W   120*m
  1110.   DC.W   120*m
  1111.   DC.W   120*m
  1112.   DC.W   120*m
  1113.   DC.W   120*m
  1114.   DC.W   120*m
  1115.   DC.W   120*m
  1116.   DC.W   119*m
  1117.   DC.W   119*m
  1118.   DC.W   119*m
  1119.   DC.W   119*m
  1120.   DC.W   118*m
  1121.   DC.W   118*m
  1122.   DC.W   118*m
  1123.   DC.W   117*m
  1124.   DC.W   117*m
  1125.   DC.W   116*m
  1126.   DC.W   116*m
  1127.   DC.W   115*m
  1128.   DC.W   115*m
  1129.   DC.W   114*m
  1130.   DC.W   113*m
  1131.   DC.W   113*m
  1132.   DC.W   112*m
  1133.   DC.W   111*m
  1134.   DC.W   110*m
  1135.   DC.W   109*m
  1136.   DC.W   109*m
  1137.   DC.W   108*m
  1138.   DC.W   107*m
  1139.   DC.W   106*m
  1140.   DC.W   105*m
  1141.   DC.W   104*m
  1142.   DC.W   103*m
  1143.   DC.W   102*m
  1144.   DC.W   101*m
  1145.   DC.W   99*m
  1146.   DC.W   98*m
  1147.   DC.W   97*m
  1148.   DC.W   96*m
  1149.   DC.W   95*m
  1150.   DC.W   93*m
  1151.   DC.W   92*m
  1152.   DC.W   91*m
  1153.   DC.W   90*m
  1154.   DC.W   88*m
  1155.   DC.W   87*m
  1156.   DC.W   86*m
  1157.   DC.W   84*m
  1158.   DC.W   83*m
  1159.   DC.W   82*m
  1160.   DC.W   80*m
  1161.   DC.W   79*m
  1162.   DC.W   77*m
  1163.   DC.W   76*m
  1164.   DC.W   74*m
  1165.   DC.W   73*m
  1166.   DC.W   71*m
  1167.   DC.W   70*m
  1168.   DC.W   68*m
  1169.   DC.W   67*m
  1170.   DC.W   65*m
  1171.   DC.W   64*m
  1172.   DC.W   62*m
  1173.   DC.W   61*m
  1174.   DC.W   59*m
  1175.   DC.W   58*m
  1176.   DC.W   56*m
  1177.   DC.W   55*m
  1178.   DC.W   54*m
  1179.   DC.W   52*m
  1180.   DC.W   51*m
  1181.   DC.W   49*m
  1182.   DC.W   48*m
  1183.   DC.W   46*m
  1184.   DC.W   45*m
  1185.   DC.W   43*m
  1186.   DC.W   42*m
  1187.   DC.W   40*m
  1188.   DC.W   39*m
  1189.   DC.W   38*m
  1190.   DC.W   36*m
  1191.   DC.W   35*m
  1192.   DC.W   33*m
  1193.   DC.W   32*m
  1194.   DC.W   31*m
  1195.   DC.W   29*m
  1196.   DC.W   28*m
  1197.   DC.W   27*m
  1198.   DC.W   26*m
  1199.   DC.W   24*m
  1200.   DC.W   23*m
  1201.   DC.W   22*m
  1202.   DC.W   21*m
  1203.   DC.W   20*m
  1204.   DC.W   19*m
  1205.   DC.W   18*m
  1206.   DC.W   17*m
  1207.   DC.W   16*m
  1208.   DC.W   15*m
  1209.   DC.W   14*m
  1210.   DC.W   13*m
  1211.   DC.W   12*m
  1212.   DC.W   11*m
  1213.   DC.W   10*m
  1214.   DC.W   9*m
  1215.   DC.W   8*m
  1216.   DC.W   8*m
  1217.   DC.W   7*m
  1218.   DC.W   6*m
  1219.   DC.W   6*m
  1220.   DC.W   5*m
  1221.   DC.W   4*m
  1222.   DC.W   4*m
  1223.   DC.W   3*m
  1224.   DC.W   3*m
  1225.   DC.W   2*m
  1226.   DC.W   2*m
  1227.   DC.W   2*m
  1228.   DC.W   1*m
  1229.   DC.W   1*m
  1230.   DC.W   1*m
  1231. sinend:
  1232.   DC.W   1*m
  1233.     dc.w    9999,9999,9999,9999,9999,9999
  1234. sinew2:
  1235.   DC.W   0
  1236.   DC.W   0
  1237.   DC.W   0
  1238.   DC.W   0
  1239.   DC.W   0
  1240.   DC.W   0
  1241.   DC.W   1/2*m
  1242.   DC.W   1/2*m
  1243.   DC.W   2/2*m
  1244.   DC.W   3/2*m
  1245.   DC.W   3/2*m
  1246.   DC.W   4/2*m
  1247.   DC.W   5/2*m
  1248.   DC.W   7/2*m
  1249.   DC.W   8/2*m
  1250.   DC.W   9/2*m
  1251.   DC.W   11/2*m
  1252.   DC.W   12/2*m
  1253.   DC.W   14/2*m
  1254.   DC.W   16/2*m
  1255.   DC.W   18/2*m
  1256.   DC.W   20/2*m
  1257.   DC.W   22/2*m
  1258.   DC.W   24/2*m
  1259.   DC.W   26/2*m
  1260.   DC.W   28/2*m
  1261.   DC.W   31/2*m
  1262.   DC.W   33/2*m
  1263.   DC.W   35/2*m
  1264.   DC.W   38/2*m
  1265.   DC.W   40/2*m
  1266.   DC.W   43/2*m
  1267.   DC.W   46/2*m
  1268.   DC.W   48/2*m
  1269.   DC.W   51/2*m
  1270.   DC.W   54/2*m
  1271.   DC.W   56/2*m
  1272.   DC.W   59/2*m
  1273.   DC.W   62/2*m
  1274.   DC.W   64/2*m
  1275.   DC.W   67/2*m
  1276.   DC.W   70/2*m
  1277.   DC.W   72/2*m
  1278.   DC.W   75/2*m
  1279.   DC.W   78/2*m
  1280.   DC.W   80/2*m
  1281.   DC.W   83/2*m
  1282.   DC.W   85/2*m
  1283.   DC.W   88/2*m
  1284.   DC.W   90/2*m
  1285.   DC.W   92/2*m
  1286.   DC.W   94/2*m
  1287.   DC.W   97/2*m
  1288.   DC.W   99/2*m
  1289.   DC.W   101/2*m
  1290.   DC.W   103/2*m
  1291.   DC.W   105/2*m
  1292.   DC.W   106/2*m
  1293.   DC.W   108/2*m
  1294.   DC.W   110/2*m
  1295.   DC.W   112/2*m
  1296.   DC.W   113/2*m
  1297.   DC.W   114/2*m
  1298.   DC.W   115/2*m
  1299.   DC.W   116/2*m
  1300.   DC.W   117/2*m
  1301.   DC.W   118/2*m
  1302.   DC.W   119/2*m
  1303.   DC.W   119/2*m
  1304.   DC.W   120/2*m
  1305.   DC.W   120/2*m
  1306.   DC.W   120/2*m
  1307.   DC.W   120/2*m
  1308.   DC.W   120/2*m
  1309.   DC.W   120/2*m
  1310.   DC.W   119/2*m
  1311.   DC.W   119/2*m
  1312.   DC.W   118/2*m
  1313.   DC.W   118/2*m
  1314.   DC.W   117/2*m
  1315.   DC.W   116/2*m
  1316.   DC.W   115/2*m
  1317.   DC.W   114/2*m
  1318.   DC.W   112/2*m
  1319.   DC.W   111/2*m
  1320.   DC.W   110/2*m
  1321.   DC.W   108/2*m
  1322.   DC.W   106/2*m
  1323.   DC.W   105/2*m
  1324.   DC.W   103/2*m
  1325.   DC.W   101/2*m
  1326.   DC.W   99/2*m
  1327.   DC.W   97/2*m
  1328.   DC.W   94/2*m
  1329.   DC.W   92/2*m
  1330.   DC.W   90/2*m
  1331.   DC.W   88/2*m
  1332.   DC.W   85/2*m
  1333.   DC.W   83/2*m
  1334.   DC.W   80/2*m
  1335.   DC.W   78/2*m
  1336.   DC.W   75/2*m
  1337.   DC.W   72/2*m
  1338.   DC.W   70/2*m
  1339.   DC.W   67/2*m
  1340.   DC.W   64/2*m
  1341.   DC.W   62/2*m
  1342.   DC.W   59/2*m
  1343.   DC.W   56/2*m
  1344.   DC.W   54/2*m
  1345.   DC.W   51/2*m
  1346.   DC.W   48/2*m
  1347.   DC.W   46/2*m
  1348.   DC.W   43/2*m
  1349.   DC.W   40/2*m
  1350.   DC.W   38/2*m
  1351.   DC.W   35/2*m
  1352.   DC.W   33/2*m
  1353.   DC.W   31/2*m
  1354.   DC.W   28/2*m
  1355.   DC.W   26/2*m
  1356.   DC.W   24/2*m
  1357.   DC.W   22/2*m
  1358.   DC.W   20/2*m
  1359.   DC.W   18/2*m
  1360.   DC.W   16/2*m
  1361.   DC.W   14/2*m
  1362.   DC.W   12/2*m
  1363.   DC.W   11/2*m
  1364.   DC.W   9/2*m
  1365.   DC.W   8/2*m
  1366.   DC.W   7/2*m
  1367.   DC.W   5/2*m
  1368.   DC.W   4/2*m
  1369.   DC.W   3/2*m
  1370.   DC.W   3/2*m
  1371.   DC.W   2/2*m
  1372.   DC.W   1/2*m
  1373. sinend2:
  1374.   DC.W   1/2*m
  1375.     dc.w    9999,9999,9999,9999,9999,9999
  1376.  
  1377. PLAY_MUSIC:
  1378.  bra PLAY
  1379.  
  1380. END_MUSIC:
  1381.  clr.w onoff
  1382.  clr.l $dff0a6
  1383.  clr.l $dff0b6
  1384.  clr.l $dff0c6
  1385.  clr.l $dff0d6
  1386.  move.w #$000f,$dff096
  1387.  bclr #1,$bfe001
  1388.  rts
  1389.  
  1390. INIT_MUSIC:
  1391.  move.w #1,onoff
  1392.  bset #1,$bfe001
  1393.  lea    module,a0
  1394.  lea 100(a0),a1
  1395.  move.l a1,SEQpoint
  1396.  move.l a0,a1
  1397.  add.l 8(a0),a1
  1398.  move.l a1,PATpoint
  1399.  move.l a0,a1
  1400.  add.l 16(a0),a1
  1401.  move.l a1,FRQpoint
  1402.  move.l a0,a1
  1403.  add.l 24(a0),a1
  1404.  move.l a1,VOLpoint
  1405.  move.l 4(a0),d0
  1406.  divu #13,d0
  1407.  
  1408.  lea 40(a0),a1
  1409.  lea SOUNDINFO+4(pc),a2
  1410.  moveq #10-1,d1
  1411. initloop:
  1412.  move.w (a1)+,(a2)+
  1413.  move.l (a1)+,(a2)+
  1414.  addq.w #4,a2
  1415.  dbf d1,initloop
  1416.  moveq #0,d2
  1417.  move.l a0,d1
  1418.  add.l 32(a0),d1
  1419.  sub.l #WAVEFORMS,d1
  1420.  lea SOUNDINFO(pc),a0
  1421.  move.l d1,(a0)+
  1422.  moveq #9-1,d3
  1423. initloop1:
  1424.  move.w (a0),d2
  1425.  add.l d2,d1
  1426.  add.l d2,d1
  1427.  addq.w #6,a0
  1428.  move.l d1,(a0)+
  1429.  dbf d3,initloop1
  1430.  
  1431.  move.l SEQpoint(pc),a0
  1432.  moveq #0,d2
  1433.  move.b 12(a0),d2        ;Get replay speed
  1434.  bne.s speedok
  1435.  move.b #3,d2            ;Set default speed
  1436. speedok:
  1437.  move.w d2,respcnt        ;Init repspeed counter
  1438.  move.w d2,repspd
  1439. INIT2:
  1440.  clr.w audtemp
  1441.  move.w #$000f,$dff096        ;Disable audio DMA
  1442.  move.w #$0780,$dff09a        ;Disable audio IRQ
  1443.  moveq #0,d7
  1444.  mulu #13,d0
  1445.  moveq #4-1,d6            ;Number of soundchannels-1
  1446.  lea V1data(pc),a0        ;Point to 1st voice data area
  1447.  lea silent(pc),a1
  1448.  lea o4a0c8(pc),a2
  1449. initloop2:
  1450.  move.l a1,10(a0)
  1451.  move.l a1,18(a0)
  1452.  clr.l 14(a0)
  1453.  clr.b 45(a0)
  1454.  clr.b 47(a0)
  1455.  clr.w 8(a0)
  1456.  clr.l 48(a0)
  1457.  move.b #$01,23(a0)
  1458.  move.b #$01,24(a0)
  1459.  clr.b 25(a0)
  1460.  clr.l 26(a0)
  1461.  clr.w 30(a0)
  1462.  moveq #$00,d3
  1463.  move.w (a2)+,d1
  1464.  move.w (a2)+,d3
  1465.  divu #$0003,d3
  1466.  move.b d3,32(a0)
  1467.  mulu #$0003,d3
  1468.  andi.l #$00ff,d3
  1469.  andi.l #$00ff,d1
  1470.  addi.l #$dff0a0,d1
  1471.  move.l d1,a6
  1472.  move.l #$0000,(a6)
  1473.  move.w #$0100,4(a6)
  1474.  move.w #$0000,6(a6)
  1475.  move.w #$0000,8(a6)
  1476.  move.l d1,60(a0)
  1477.  clr.w 64(a0)
  1478.  move.l SEQpoint(pc),(a0)
  1479.  move.l SEQpoint(pc),52(a0)
  1480.  add.l d0,52(a0)
  1481.  add.l d3,52(a0)
  1482.  add.l d7,(a0)
  1483.  add.l d3,(a0)
  1484.  move.w #$000d,6(a0)
  1485.  move.l (a0),a3
  1486.  move.b (a3),d1
  1487.  andi.l #$00ff,d1
  1488.  lsl.w #6,d1
  1489.  move.l PATpoint(pc),a4
  1490.  adda.w d1,a4
  1491.  move.l a4,34(a0)
  1492.  clr.l 38(a0)
  1493.  move.b #$01,33(a0)
  1494.  move.b #$02,42(a0)
  1495.  move.b 1(a3),44(a0)
  1496.  move.b 2(a3),22(a0)
  1497.  clr.b 43(a0)
  1498.  clr.b 45(a0)
  1499.  clr.w 56(a0)
  1500.  adda.w #$004a,a0    ;Point to next voice's data area
  1501.  dbf d6,initloop2
  1502. rts
  1503.  
  1504.  
  1505. PLAY:
  1506.  lea pervol(pc),a6
  1507.  tst.w onoff
  1508.  bne.s music_on
  1509.  rts
  1510. music_on:
  1511.  subq.w #1,respcnt        ;Decrease replayspeed counter
  1512.  bne.s nonewnote
  1513.  move.w repspd(pc),respcnt    ;Restore replayspeed counter
  1514.  lea V1data(pc),a0        ;Point to voice1 data area
  1515.  bsr new_note
  1516.  move.b tempreg,d5
  1517. ; and.b #%00111111,d5
  1518.  move.b d5,vs1
  1519.  lea V2data(pc),a0        ;Point to voice2 data area
  1520.  bsr new_note
  1521.  move.b tempreg,d5
  1522. ; and.b #%00111111,d5
  1523.  move.b d5,vs2
  1524.  lea V3data(pc),a0        ;Point to voice3 data area
  1525.  bsr new_note
  1526.  move.b tempreg,d5
  1527. ; and.b #%00111111,d5
  1528.  move.b d5,vs3
  1529.  lea V4data(pc),a0        ;Point to voice4 data area
  1530.  bsr new_note
  1531.  move.b tempreg,d5
  1532. ; and.b #%00111111,d5
  1533.  move.b d5,vs4
  1534. nonewnote:
  1535.  clr.w audtemp
  1536.  lea V1data(pc),a0
  1537.  bsr effects
  1538.  move.w d0,(a6)+
  1539.  move.w d1,(a6)+
  1540.  lea V2data(pc),a0
  1541.  bsr effects
  1542.  move.w d0,(a6)+
  1543.  move.w d1,(a6)+
  1544.  lea V3data(pc),a0
  1545.  bsr effects
  1546.  move.w d0,(a6)+
  1547.  move.w d1,(a6)+
  1548.  lea V4data(pc),a0
  1549.  bsr effects
  1550.  move.w d0,(a6)+
  1551.  move.w d1,(a6)+
  1552.  lea pervol(pc),a6
  1553.  move.w audtemp(pc),d0
  1554.  ori.w #$8000,d0            ;Set/clr bit = 1
  1555.  move.w d0,-(a7)
  1556.  moveq #0,d1
  1557.  move.l start1(pc),d2        ;Get samplepointers
  1558.  move.w offset1(pc),d1        ;Get offset
  1559.  add.l d1,d2            ;Add offset
  1560.  move.l start2(pc),d3
  1561.  move.w offset2(pc),d1
  1562.  add.l d1,d3
  1563.  move.l start3(pc),d4
  1564.  move.w offset3(pc),d1
  1565.  add.l d1,d4
  1566.  move.l start4(pc),d5
  1567.  move.w offset4(pc),d1
  1568.  add.l d1,d5
  1569.  move.w ssize1(pc),d0        ;Get sound lengths
  1570.  move.w ssize2(pc),d1
  1571.  move.w ssize3(pc),d6
  1572.  move.w ssize4(pc),d7
  1573.  move.w (a7)+,$dff096        ;Enable audio DMA
  1574. chan1:
  1575.  lea V1data(pc),a0
  1576.  tst.w 72(a0)
  1577.  beq.w chan2
  1578.  subq.w #1,72(a0)
  1579.  cmpi.w #1,72(a0)
  1580.  bne.s chan2
  1581.  clr.w 72(a0)
  1582.  move.l d2,$dff0a0        ;Set soundstart
  1583.  move.w d0,$dff0a4        ;Set soundlength
  1584. chan2:
  1585.  lea V2data(pc),a0
  1586.  tst.w 72(a0)
  1587.  beq.s chan3
  1588.  subq.w #1,72(a0)
  1589.  cmpi.w #1,72(a0)
  1590.  bne.s chan3
  1591.  clr.w 72(a0)
  1592.  move.l d3,$dff0b0
  1593.  move.w d1,$dff0b4
  1594. chan3:
  1595.  lea V3data(pc),a0
  1596.  tst.w 72(a0)
  1597.  beq.s chan4
  1598.  subq.w #1,72(a0)
  1599.  cmpi.w #1,72(a0)
  1600.  bne.s chan4
  1601.  clr.w 72(a0)
  1602.  move.l d4,$dff0c0
  1603.  move.w d6,$dff0c4
  1604. chan4:
  1605.  lea V4data(pc),a0
  1606.  tst.w 72(a0)
  1607.  beq.s setpervol
  1608.  subq.w #1,72(a0)
  1609.  cmpi.w #1,72(a0)
  1610.  bne.s setpervol
  1611.  clr.w 72(a0)
  1612.  move.l d5,$dff0d0
  1613.  move.w d7,$dff0d4
  1614. setpervol:
  1615.  lea $dff0a6,a5
  1616.  move.w (a6)+,(a5)    ;Set period
  1617.  move.w (a6)+,2(a5)    ;Set volume
  1618.  move.w (a6)+,16(a5)
  1619.  move.w (a6)+,18(a5)
  1620.  move.w (a6)+,32(a5)
  1621.  move.w (a6)+,34(a5)
  1622.  move.w (a6)+,48(a5)
  1623.  move.w (a6)+,50(a5)
  1624.  rts
  1625.  
  1626. NEW_NOTE:
  1627.  moveq #0,d5
  1628.  move.l 34(a0),a1
  1629.  adda.w 40(a0),a1
  1630.  cmp.w #64,40(a0)
  1631.  bne.w samepat
  1632.  move.l (a0),a2
  1633.  adda.w 6(a0),a2        ;Point to next sequence row
  1634.  cmpa.l 52(a0),a2    ;Is it the end?
  1635.  bne.s notend
  1636.  move.w d5,6(a0)        ;yes!
  1637.  move.l (a0),a2        ;Point to first sequence
  1638. notend:
  1639.  moveq #0,d1
  1640.  addq.b #1,spdtemp
  1641.  cmpi.b #4,spdtemp
  1642.  bne.s nonewspd
  1643.  move.b d5,spdtemp
  1644.  move.b -1(a1),d1    ;Get new replay speed
  1645.  beq.s nonewspd
  1646.  move.w d1,respcnt    ;store in counter
  1647.  move.w d1,repspd
  1648. nonewspd:
  1649.  move.b (a2),d1        ;Pattern to play
  1650.  move.b 1(a2),44(a0)    ;Transpose value
  1651.  move.b 2(a2),22(a0)    ;Soundtranspose value
  1652.  
  1653.  move.w d5,40(a0)
  1654.  lsl.w #6,d1
  1655.  add.l PATpoint(pc),d1    ;Get pattern pointer
  1656.  move.l d1,34(a0)
  1657.  addi.w #$000d,6(a0)
  1658.  move.l d1,a1
  1659. samepat:
  1660.  move.b 1(a1),d1        ;Get info byte
  1661.  move.b (a1)+,d0        ;Get note
  1662.  move.b d0,tempreg
  1663.  bne.s ww1
  1664.  andi.w #%11000000,d1
  1665.  beq.s noport
  1666.  bra.s ww11
  1667. ww1:
  1668.  move.w d5,56(a0)
  1669. ww11:
  1670.  move.b d5,47(a0)
  1671.  move.b (a1),31(a0)
  1672.  
  1673.         ;31(a0) = PORTAMENTO/INSTR. info
  1674.             ;Bit 7 = portamento on
  1675.             ;Bit 6 = portamento off
  1676.             ;Bit 5-0 = instrument number
  1677.         ;47(a0) = portamento value
  1678.             ;Bit 7-5 = always zero
  1679.             ;Bit 4 = up/down
  1680.             ;Bit 3-0 = value
  1681. t_porton:
  1682.  btst #7,d1
  1683.  beq.s noport
  1684.  move.b 2(a1),47(a0)    
  1685. noport:
  1686.  andi.w #$007f,d0
  1687.  beq.w nextnote
  1688.  move.b d0,8(a0)
  1689.  move.b (a1),9(a0)
  1690.  move.b 32(a0),d2
  1691.  moveq #0,d3
  1692.  bset d2,d3
  1693.  or.w d3,audtemp
  1694.  move.w d3,$dff096
  1695.  move.b (a1),d1
  1696.  andi.w #$003f,d1    ;Max 64 instruments
  1697.  add.b 22(a0),d1
  1698.  move.l VOLpoint(pc),a2
  1699.  lsl.w #6,d1
  1700.  adda.w d1,a2
  1701.  move.w d5,16(a0)
  1702.  move.b (a2),23(a0)
  1703.  move.b (a2)+,24(a0)
  1704.  move.b (a2)+,d1
  1705.  andi.w #$00ff,d1
  1706.  move.b (a2)+,27(a0)
  1707.  move.b #$40,46(a0)
  1708.  move.b (a2)+,d0
  1709.  move.b d0,28(a0)
  1710.  move.b d0,29(a0)
  1711.  move.b (a2)+,30(a0)
  1712.  move.l a2,10(a0)
  1713.  move.l FRQpoint(pc),a2
  1714.  lsl.w #6,d1
  1715.  adda.w d1,a2
  1716.  move.l a2,18(a0)
  1717.  move.w d5,50(a0)
  1718.  move.b d5,26(a0)
  1719.  move.b d5,25(a0)
  1720. nextnote:
  1721.  addq.w #2,40(a0)
  1722.  rts
  1723.  
  1724. EFFECTS:
  1725.  moveq #0,d7
  1726. testsustain:
  1727.  tst.b 26(a0)        ;Is sustain counter = 0
  1728.  beq.s sustzero
  1729.  subq.b #1,26(a0)    ;if no, decrease counter
  1730.  bra VOLUfx
  1731. sustzero:        ;Next part of effect sequence
  1732.  move.l 18(a0),a1    ;can be executed now.
  1733.  adda.w 50(a0),a1
  1734. testeffects:
  1735.  cmpi.b #$e1,(a1)    ;E1 = end of FREQseq sequence
  1736.  beq.w VOLUfx
  1737.  cmpi.b #$e0,(a1)    ;E0 = loop to other part of sequence
  1738.  bne.s testnewsound
  1739.  move.b 1(a1),d0        ;loop to start of sequence + 1(a1)
  1740.  andi.w #$003f,d0
  1741.  move.w d0,50(a0)
  1742.  move.l 18(a0),a1
  1743.  adda.w d0,a1
  1744. testnewsound:
  1745.  cmpi.b #$e2,(a1)    ;E2 = set waveform
  1746.  bne.s o49c64
  1747.  moveq #0,d0
  1748.  moveq #0,d1
  1749.  move.b 32(a0),d1
  1750.  bset d1,d0
  1751.  or.w d0,audtemp
  1752.  move.w d0,$dff096
  1753.  move.b 1(a1),d0
  1754.  andi.w #$00ff,d0
  1755.  lea SOUNDINFO(pc),a4
  1756.  add.w d0,d0
  1757.  move.w d0,d1
  1758.  add.w d1,d1
  1759.  add.w d1,d1
  1760.  add.w d1,d0
  1761.  adda.w d0,a4
  1762.  move.l 60(a0),a3
  1763.  move.l (a4),d1
  1764.  add.l #WAVEFORMS,d1
  1765.  move.l d1,(a3)
  1766.  move.l d1,68(a0)
  1767.  move.w 4(a4),4(a3)
  1768.  move.l 6(a4),64(a0)
  1769.  swap d1
  1770.  move.w #$0003,72(a0)
  1771.  tst.w d1
  1772.  bne.s o49c52
  1773.  move.w #$0002,72(a0)
  1774. o49c52:
  1775.  clr.w 16(a0)
  1776.  move.b #$01,23(a0)
  1777.  addq.w #2,50(a0)
  1778.  bra o49d02
  1779. o49c64:
  1780.  cmpi.b #$e4,(a1)
  1781.  bne.s testpatjmp
  1782.  move.b 1(a1),d0
  1783.  andi.w #$00ff,d0
  1784.  lea SOUNDINFO(pc),a4
  1785.  add.w d0,d0
  1786.  move.w d0,d1
  1787.  add.w d1,d1
  1788.  add.w d1,d1
  1789.  add.w d1,d0
  1790.  adda.w d0,a4
  1791.  move.l 60(a0),a3
  1792.  move.l (a4),d1
  1793.  add.l #WAVEFORMS,d1
  1794.  move.l d1,(a3)
  1795.  move.l d1,68(a0)
  1796.  move.w 4(a4),4(a3)
  1797.  move.l 6(a4),64(a0)
  1798.  
  1799.  swap d1
  1800.  move.w #$0003,72(a0)
  1801.  tst.w d1
  1802.  bne.s o49cae
  1803.  move.w #$0002,72(a0)
  1804. o49cae:
  1805.  addq.w #2,50(a0)
  1806.  bra.s o49d02
  1807. testpatjmp:
  1808.  cmpi.b #$e7,(a1)
  1809.  bne.s testnewsustain
  1810.  move.b 1(a1),d0
  1811.  andi.w #$00ff,d0
  1812.  lsl.w #6,d0
  1813.  move.l FRQpoint(pc),a1
  1814.  adda.w d0,a1
  1815.  move.l a1,18(a0)
  1816.  move.w d7,50(a0)
  1817.  bra testeffects
  1818. testnewsustain:
  1819.  cmpi.b #$e8,(a1)    ;E8 = set sustain time
  1820.  bne.s o49cea
  1821.  move.b 1(a1),26(a0)
  1822.  addq.w #2,50(a0)
  1823.  bra testsustain
  1824. o49cea:
  1825.  cmpi.b #$e3,(a1)
  1826.  bne.s o49d02
  1827.  addq.w #3,50(a0)
  1828.  move.b 1(a1),27(a0)
  1829.  move.b 2(a1),28(a0)
  1830. o49d02:
  1831.  move.l 18(a0),a1
  1832.  adda.w 50(a0),a1
  1833.  move.b (a1),43(a0)
  1834.  addq.w #1,50(a0)
  1835. VOLUfx:
  1836.  tst.b 25(a0)
  1837.  beq.s o49d1e
  1838.  subq.b #1,25(a0)
  1839.  bra.s o49d70
  1840. o49d1e:
  1841.  subq.b #1,23(a0)
  1842.  bne.s o49d70
  1843.  move.b 24(a0),23(a0)
  1844. o49d2a:
  1845.  move.l 10(a0),a1
  1846.  adda.w 16(a0),a1
  1847.  move.b (a1),d0
  1848.  cmpi.b #$e8,d0
  1849.  bne.s o49d4a
  1850.  addq.w #2,16(a0)
  1851.  move.b 1(a1),25(a0)
  1852.  bra.s VOLUfx
  1853. o49d4a:
  1854.  cmpi.b #$e1,d0
  1855.  beq.s o49d70
  1856.  cmpi.b #$e0,d0
  1857.  bne.s o49d68
  1858.  move.b 1(a1),d0
  1859.  andi.l #$003f,d0
  1860.  subq.b #5,d0
  1861.  move.w d0,16(a0)
  1862.  bra.s o49d2a
  1863. o49d68:
  1864.  move.b (a1),45(a0)
  1865.  addq.w #1,16(a0)
  1866. o49d70:
  1867.  move.b 43(a0),d0
  1868.  bmi.s o49d7e
  1869.  add.b 8(a0),d0
  1870.  add.b 44(a0),d0
  1871. o49d7e:
  1872.  andi.w #$007f,d0
  1873.  lea PERIODS(pc),a1
  1874.  add.w d0,d0
  1875.  move.w d0,d1
  1876.  adda.w d0,a1
  1877.  move.w (a1),d0
  1878.  move.b 46(a0),d7
  1879.  tst.b 30(a0)
  1880.  beq.s o49d9e
  1881.  subq.b #1,30(a0)
  1882.  
  1883.  bra.s o49df4
  1884. o49d9e:
  1885.  move.b d1,d5
  1886.  move.b 28(a0),d4
  1887.  add.b d4,d4
  1888.  move.b 29(a0),d1
  1889.  tst.b d7
  1890.  bpl.s o49db4
  1891.  btst #0,d7
  1892.  bne.s o49dda
  1893. o49db4:
  1894.  btst #5,d7
  1895.  bne.s o49dc8
  1896.  sub.b 27(a0),d1
  1897.  bcc.s o49dd6
  1898.  bset #5,d7
  1899.  moveq #0,d1
  1900.  bra.s o49dd6
  1901. o49dc8:
  1902.  add.b 27(a0),d1
  1903.  cmp.b d4,d1
  1904.  bcs.s o49dd6
  1905.  bclr #5,d7
  1906.  move.b d4,d1
  1907. o49dd6:
  1908.  move.b d1,29(a0)
  1909. o49dda:
  1910.  lsr.b #1,d4
  1911.  sub.b d4,d1
  1912.  bcc.s o49de4
  1913.  subi.w #$0100,d1
  1914. o49de4:
  1915.  addi.b #$a0,d5
  1916.  bcs.s o49df2
  1917. o49dea:
  1918.  add.w d1,d1
  1919.  addi.b #$18,d5
  1920.  bcc.s o49dea
  1921. o49df2:
  1922.  add.w d1,d0
  1923. o49df4:
  1924.  eori.b #$01,d7
  1925.  move.b d7,46(a0)
  1926.  
  1927. ; DO THE PORTAMENTO THING
  1928.  moveq #0,d1
  1929.  move.b 47(a0),d1    ;get portavalue
  1930.  beq.s a56d0        ;0=no portamento
  1931.  cmpi.b #$1f,d1
  1932.  bls.s portaup
  1933. portadown: 
  1934.  andi.w #$1f,d1
  1935.  neg.w d1
  1936. portaup:
  1937.  sub.w d1,56(a0)
  1938. a56d0:
  1939.  add.w 56(a0),d0
  1940. o49e3e:
  1941.  cmpi.w #$0070,d0
  1942.  bhi.s nn1
  1943.  move.w #$0071,d0
  1944. nn1:
  1945.  cmpi.w #$06b0,d0
  1946.  bls.s nn2
  1947.  move.w #$06b0,d0
  1948. nn2:
  1949.  moveq #0,d1
  1950.  move.b 45(a0),d1
  1951.  rts
  1952.  
  1953.  
  1954.  
  1955. pervol:     dcb.b 16,0    ;Periods & Volumes temp. store
  1956. respcnt: dc.w 0        ;Replay speed counter 
  1957. repspd:  dc.w 0        ;Replay speed counter temp
  1958. onoff:   dc.w 0        ;Music on/off flag.
  1959. firseq:     dc.w 0        ;First sequence
  1960. lasseq:     dc.w 0        ;Last sequence
  1961. audtemp: dc.w 0
  1962. spdtemp: dc.w 0
  1963.  
  1964. V1data:  dcb.b 64,0    ;Voice 1 data area
  1965. offset1: dcb.b 02,0    ;Is added to start of sound
  1966. ssize1:  dcb.b 02,0    ;Length of sound
  1967. start1:  dcb.b 06,0    ;Start of sound
  1968.  
  1969. V2data:  dcb.b 64,0    ;Voice 2 data area
  1970. offset2: dcb.b 02,0
  1971. ssize2:  dcb.b 02,0
  1972. start2:  dcb.b 06,0
  1973.  
  1974. V3data:  dcb.b 64,0    ;Voice 3 data area
  1975. offset3: dcb.b 02,0
  1976. ssize3:  dcb.b 02,0
  1977. start3:  dcb.b 06,0
  1978.  
  1979. V4data:  dcb.b 64,0    ;Voice 4 data area
  1980. offset4: dcb.b 02,0
  1981. ssize4:  dcb.b 02,0
  1982. start4:  dcb.b 06,0
  1983.  
  1984. o4a0c8: dc.l $00000000,$00100003,$00200006,$00300009
  1985. SEQpoint: dc.l 0
  1986. PATpoint: dc.l 0
  1987. FRQpoint: dc.l 0
  1988. VOLpoint: dc.l 0
  1989.  
  1990.  
  1991. even
  1992. SILENT: dc.w $0100,$0000,$0000,$00e1
  1993.  
  1994. PERIODS:dc.w $06b0,$0650,$05f4,$05a0,$054c,$0500,$04b8,$0474
  1995.     dc.w $0434,$03f8,$03c0,$038a,$0358,$0328,$02fa,$02d0
  1996.     dc.w $02a6,$0280,$025c,$023a,$021a,$01fc,$01e0,$01c5
  1997.     dc.w $01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d
  1998.     dc.w $010d,$00fe,$00f0,$00e2,$00d6,$00ca,$00be,$00b4
  1999.     dc.w $00aa,$00a0,$0097,$008f,$0087,$007f,$0078,$0071
  2000.     dc.w $0071,$0071,$0071,$0071,$0071,$0071,$0071,$0071
  2001.     dc.w $0071,$0071,$0071,$0071,$0d60,$0ca0,$0be8,$0b40
  2002.     dc.w $0a98,$0a00,$0970,$08e8,$0868,$07f0,$0780,$0714
  2003.     dc.w $1ac0,$1940,$17d0,$1680,$1530,$1400,$12e0,$11d0
  2004.     dc.w $10d0,$0fe0,$0f00,$0e28
  2005.  
  2006. SOUNDINFO:
  2007. ;Offset.l , Sound-length.w , Start-offset.w , Repeat-length.w 
  2008.  
  2009. ;Reserved for samples
  2010.     dc.w $0000,$0000,$0000,$0000,$0001 
  2011.     dc.w $0000,$0000,$0000,$0000,$0001 
  2012.     dc.w $0000,$0000,$0000,$0000,$0001 
  2013.     dc.w $0000,$0000,$0000,$0000,$0001 
  2014.     dc.w $0000,$0000,$0000,$0000,$0001 
  2015.     dc.w $0000,$0000,$0000,$0000,$0001 
  2016.     dc.w $0000,$0000,$0000,$0000,$0001 
  2017.     dc.w $0000,$0000,$0000,$0000,$0001 
  2018.     dc.w $0000,$0000,$0000,$0000,$0001 
  2019.     dc.w $0000,$0000,$0000,$0000,$0001 
  2020. ;Reserved for synth sounds
  2021.     dc.w $0000,$0000,$0010,$0000,$0010
  2022.     dc.w $0000,$0020,$0010,$0000,$0010
  2023.     dc.w $0000,$0040,$0010,$0000,$0010
  2024.     dc.w $0000,$0060,$0010,$0000,$0010
  2025.     dc.w $0000,$0080,$0010,$0000,$0010
  2026.     dc.w $0000,$00a0,$0010,$0000,$0010
  2027.     dc.w $0000,$00c0,$0010,$0000,$0010
  2028.     dc.w $0000,$00e0,$0010,$0000,$0010
  2029.     dc.w $0000,$0100,$0010,$0000,$0010
  2030.     dc.w $0000,$0120,$0010,$0000,$0010
  2031.     dc.w $0000,$0140,$0010,$0000,$0010
  2032.     dc.w $0000,$0160,$0010,$0000,$0010
  2033.     dc.w $0000,$0180,$0010,$0000,$0010 
  2034.     dc.w $0000,$01a0,$0010,$0000,$0010 
  2035.     dc.w $0000,$01c0,$0010,$0000,$0010 
  2036.     dc.w $0000,$01e0,$0010,$0000,$0010 
  2037.     dc.w $0000,$0200,$0010,$0000,$0010 
  2038.     dc.w $0000,$0220,$0010,$0000,$0010 
  2039.     dc.w $0000,$0240,$0010,$0000,$0010 
  2040.     dc.w $0000,$0260,$0010,$0000,$0010 
  2041.     dc.w $0000,$0280,$0010,$0000,$0010 
  2042.     dc.w $0000,$02a0,$0010,$0000,$0010 
  2043.     dc.w $0000,$02c0,$0010,$0000,$0010 
  2044.     dc.w $0000,$02e0,$0010,$0000,$0010 
  2045.     dc.w $0000,$0300,$0010,$0000,$0010 
  2046.     dc.w $0000,$0320,$0010,$0000,$0010 
  2047.     dc.w $0000,$0340,$0010,$0000,$0010 
  2048.     dc.w $0000,$0360,$0010,$0000,$0010 
  2049.     dc.w $0000,$0380,$0010,$0000,$0010 
  2050.     dc.w $0000,$03a0,$0010,$0000,$0010 
  2051.     dc.w $0000,$03c0,$0010,$0000,$0010 
  2052.     dc.w $0000,$03e0,$0010,$0000,$0010 
  2053.     dc.w $0000,$0400,$0008,$0000,$0008 
  2054.     dc.w $0000,$0410,$0008,$0000,$0008 
  2055.     dc.w $0000,$0420,$0008,$0000,$0008 
  2056.     dc.w $0000,$0430,$0008,$0000,$0008 
  2057.     dc.w $0000,$0440,$0008,$0000,$0008
  2058.     dc.w $0000,$0450,$0008,$0000,$0008
  2059.     dc.w $0000,$0460,$0008,$0000,$0008
  2060.     dc.w $0000,$0470,$0008,$0000,$0008
  2061.     dc.w $0000,$0480,$0010,$0000,$0010
  2062.     dc.w $0000,$04a0,$0008,$0000,$0008
  2063.     dc.w $0000,$04b0,$0010,$0000,$0010
  2064.     dc.w $0000,$04d0,$0010,$0000,$0010
  2065.     dc.w $0000,$04f0,$0008,$0000,$0008
  2066.     dc.w $0000,$0500,$0008,$0000,$0008
  2067.     dc.w $0000,$0510,$0018,$0000,$0018
  2068.  
  2069.  
  2070. WAVEFORMS:
  2071.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2072.  dc.w $3f37,$2f27,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  2073.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2074.  dc.w $c037,$2f27,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  2075.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2076.  dc.w $c0b8,$2f27,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  2077.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2078.  dc.w $c0b8,$b027,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  2079.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2080.  dc.w $c0b8,$b0a8,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  2081.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2082.  dc.w $c0b8,$b0a8,$a017,$0f07,$ff07,$0f17,$1f27,$2f37
  2083.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2084.  dc.w $c0b8,$b0a8,$a098,$0f07,$ff07,$0f17,$1f27,$2f37
  2085.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2086.  dc.w $c0b8,$b0a8,$a098,$9007,$ff07,$0f17,$1f27,$2f37
  2087.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2088.  dc.w $c0b8,$b0a8,$a098,$9088,$ff07,$0f17,$1f27,$2f37
  2089.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2090.  dc.w $c0b8,$b0a8,$a098,$9088,$8007,$0f17,$1f27,$2f37
  2091.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2092.  dc.w $c0b8,$b0a8,$a098,$9088,$8088,$0f17,$1f27,$2f37
  2093.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2094.  dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9017,$1f27,$2f37
  2095.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2096.  dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9098,$1f27,$2f37
  2097.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2098.  dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9098,$a027,$2f37
  2099.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2100.  dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9098,$a0a8,$2f37
  2101.  dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  2102.  dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9098,$a0a8,$b037
  2103.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2104.  dc.w $7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  2105.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2106.  dc.w $817f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  2107.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2108.  dc.w $8181,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  2109.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2110.  dc.w $8181,$817f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  2111.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2112.  dc.w $8181,$8181,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  2113.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2114.  dc.w $8181,$8181,$817f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  2115.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2116.  dc.w $8181,$8181,$8181,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  2117.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2118.  dc.w $8181,$8181,$8181,$817f,$7f7f,$7f7f,$7f7f,$7f7f
  2119.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2120.  dc.w $8181,$8181,$8181,$8181,$7f7f,$7f7f,$7f7f,$7f7f
  2121.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2122.  dc.w $8181,$8181,$8181,$8181,$817f,$7f7f,$7f7f,$7f7f
  2123.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2124.  dc.w $8181,$8181,$8181,$8181,$8181,$7f7f,$7f7f,$7f7f
  2125.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2126.  dc.w $8181,$8181,$8181,$8181,$8181,$817f,$7f7f,$7f7f
  2127.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2128.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$7f7f,$7f7f
  2129.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  2130.  dc.w $8181,$8181,$8181,$8181,$8181,$8181,$817f,$7f7f
  2131.  dc.w $8080,$8080,$8080,$8080,$8080,$8080,$8080,$8080
  2132.  dc.w $8080,$8080,$8080,$8080,$8080,$8080,$8080,$7f7f
  2133.  dc.w $8080,$8080,$8080,$8080,$8080,$8080,$8080,$8080
  2134.  dc.w $8080,$8080,$8080,$8080,$8080,$8080,$8080,$807f
  2135.  dc.w $8080,$8080,$8080,$8080,$7f7f,$7f7f,$7f7f,$7f7f
  2136.  dc.w $8080,$8080,$8080,$807f,$7f7f,$7f7f,$7f7f,$7f7f
  2137.  dc.w $8080,$8080,$8080,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  2138.  dc.w $8080,$8080,$807f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  2139.  dc.w $8080,$8080,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  2140.  dc.w $8080,$807f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  2141.  dc.w $8080,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  2142.  dc.w $8080,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  2143.  dc.w $8080,$9098,$a0a8,$b0b8,$c0c8,$d0d8,$e0e8,$f0f8
  2144.  dc.w $0008,$1018,$2028,$3038,$4048,$5058,$6068,$707f
  2145.  dc.w $8080,$a0b0,$c0d0,$e0f0,$0010,$2030,$4050,$6070
  2146.  dc.w $4545,$797d,$7a77,$7066,$6158,$534d,$2c20,$1812
  2147.  dc.w $04db,$d3cd,$c6bc,$b5ae,$a8a3,$9d99,$938e,$8b8a
  2148.  dc.w $4545,$797d,$7a77,$7066,$5b4b,$4337,$2c20,$1812
  2149.  dc.w $04f8,$e8db,$cfc6,$beb0,$a8a4,$9e9a,$9594,$8d83
  2150.  dc.w $0000,$4060,$7f60,$4020,$00e0,$c0a0,$80a0,$c0e0
  2151.  dc.w $0000,$4060,$7f60,$4020,$00e0,$c0a0,$80a0,$c0e0
  2152.  dc.w $8080,$9098,$a0a8,$b0b8,$c0c8,$d0d8,$e0e8,$f0f8
  2153.  dc.w $0008,$1018,$2028,$3038,$4048,$5058,$6068,$707f
  2154.  dc.w $8080,$a0b0,$c0d0,$e0f0,$0010,$2030,$4050,$6070
  2155.  
  2156. module:    incbin "dex4"
  2157.  
  2158. logo:    incbin    "logo.b"
  2159.  
  2160. vs1:    dc.b    0
  2161. vs2:    dc.b    0
  2162. vs3:    dc.b    0
  2163. vs4:    dc.b    0
  2164. tempreg:dc.b    0
  2165.  
  2166.